home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
pascal
/
totsrc11.zip
/
TOTLIST.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-06-08
|
56KB
|
2,065 lines
{ Copyright 1991 TechnoJock Software, Inc. }
{ All Rights Reserved }
{ Restricted by License }
{ Build # 1.10e }
Unit totLIST;
{$I TOTFLAGS.INC}
{
Development Notes:
1.00a 4/03/91 Corrected Dispose problem in BrowseFileOBJ when
file not found.
1.00b 5/06/91 Added close statement in AssignFile
1.00c 5/09/91 Added GetSelectedPick to ListOBJ
1.00d 5/23/91 Added reaction to Mouse method 1
1.00e 5/28/91 Initialized vActiveDir in ReadFiles
1.00f 5/30/91 Changed allow toggle logic for String arrays
1.00g 7/15/91 Added SetChangeDir to ListDirOBJ
1.00h 10/03/91 Added a char hook to ListDirOBJ
1.00i 11/06/91 Changed memory checking in ListArrayOBJ.AssignList
1.00j 01/16/91 Corrected range check error on scroll bar
1.00k 10/02/92 Changed ReadFiles when path/drive specified
1.10a 02/23/93 Corrected filemask problem introduced in 1.00k
1.10b 04/13/93 Changed AssignFile retcode to 2 when no memory
1.10c 05/03/93 Initialized vLastKey in ListOBJ.Init
& Added ListLinkOBJ.RefreshList
& Changed Individual Item Selection to Double Click
1.10d 05/14/93 Corrected Total File Count when FillList called
1.10e 06/06/93 Wait for mouse release on Double Click
}
INTERFACE
Uses DOS,
totSYS, totLOOK, totFAST, totWIN, totINPUT, totLINK, totSTR, totIO1;
TYPE
tListAction = (Finish,Refresh,None);
ListCharFunc = function(var K:word; var X,Y: byte; HiPick:longint): tListAction;
ListMsgFunc = function(HiPick:longint):string;
pBrowseOBJ = ^BrowseOBJ;
BrowseOBJ = object
vWin: StretchWinPtr;
vTopPick: longint; {number of first pick in window}
vTotPicks: longint; {total number of picks}
vListVisible: boolean; {is list on display}
vListAssigned: boolean; {is data assigned to list}
vActivePick: integer; {the offset of the active pick from the top}
vRows: integer; {total number of visible rows}
vStartCol : longint; {string position of first character}
vEndCol: longint; {rightmost column for scrolling}
vRealColWidth: byte; {max avail column width}
vLastKey: word; {last key the user pressed}
{methods ...}
constructor Init;
procedure SetTopPick(TopPick: longint);
procedure SetStartCol(Column: longint);
procedure SetEndCol(Column: longint);
function Win:StretchWinPtr;
procedure DisplayPick(Pick:integer);
procedure DisplayAllPicks;
procedure ScrollUp;
procedure ScrollDown;
procedure ScrollPgUp;
procedure ScrollPgDn;
procedure ScrollFirst;
procedure ScrollLast;
procedure SlideLeft;
procedure SlideRight;
procedure ScrollFarRight;
procedure ScrollFarLeft;
procedure ScrollJumpH(X,Y:byte);
procedure ScrollJumpV(X,Y:byte);
function LastKey: word;
procedure Remove;
procedure Show;
procedure ResetDimensions;
procedure Go;
function GetString(Pick, Start,Finish: longint):string; VIRTUAL;
destructor Done; VIRTUAL;
end; {BrowseOBJ}
pBrowseArrayOBJ = ^BrowseArrayOBJ;
BrowseArrayOBJ = Object (BrowseOBJ)
vArrayPtr: pointer;
vStrLength: byte;
{methods ...}
constructor Init;
procedure AssignList(var StrArray; Total:Longint; StrLength:byte);
function GetString(Pick, Start,Finish:longint): string; VIRTUAL;
destructor Done; VIRTUAL;
end; {BrowseArrayOBJ}
pBrowseLinkOBJ = ^BrowseLinkOBJ;
BrowseLinkOBJ = Object (BrowseOBJ)
vLinkList: ^DLLOBJ;
{methods ...}
constructor Init;
procedure AssignList(var LinkList: DLLOBJ);
function ListPtr: DLLPtr;
function GetString(Pick, Start,Finish:longint): string; VIRTUAL;
destructor Done; VIRTUAL;
end; {BrowseLinkOBJ}
pBrowseFileOBJ = ^BrowseFileOBJ;
BrowseFileOBJ = Object (BrowseOBJ)
vStrList: ^StrDLLOBJ;
{methods ...}
constructor Init;
function AssignFile(Filename: string):integer;
function ListPtr: StrDLLPtr;
function GetString(Pick, Start,Finish:longint): string; VIRTUAL;
destructor Done; VIRTUAL;
end; {BrowseFileOBJ}
pListOBJ = ^ListOBJ;
ListOBJ = object
vWin: StretchWinPtr; {pointer to a window}
vMargin: tByteCoords; {padding around window border}
vZone: tByteCoords; {outer window dimensions}
vTopPick: longint; {number of first pick in window}
vTotPicks: longint; {total number of picks}
vAllowToggle: boolean; {can user select items in list}
vListVisible: boolean; {is list on display}
vListAssigned: boolean; {is data assigned to list}
vLastChar: word; {last key user pressed}
vColWidth: byte; {user set column width in list display: 0 = max}
vNAttr: byte; {normal attribute/color}
vSAttr: byte; {attribute for special items}
vHAttr: byte; {highlighted topic attribute/color}
vActivePick: integer; {the offset of the active pick from the top}
vRows: integer; {total number of visible rows}
vCols: integer; {Total number of visible columns}
vRealColWidth: byte; {max avail column width}
vLastColWidth: byte; {width of right most column}
vUseLastCol: boolean; {use the last column for highlighting or too narrow}
vLastKey: word; {last key the user pressed}
vCharHook: ListCharFunc; {character hook}
vMsgHook: ListMsgFunc; {message hook}
vMsgActive: boolean; {is Msg hook enabled}
vDualColors: boolean; {should list use SAttr and NAttr}
{methods ...}
constructor Init;
procedure SetTopPick(TopPick: longint);
procedure SetActivePick(ThePick: LongInt);
procedure SetTagging(On:boolean);
procedure SetColors(HAttr,NAttr,SAttr: byte);
procedure SetColWidth(Wid: byte);
procedure SetCharHook(Func:ListCharFunc);
procedure SetMsgHook(Func:ListMsgFunc);
procedure SetMsgState(On:boolean);
procedure SetDualColors(On:Boolean);
function GetHiString:string;
function GetSelectedPick: longint;
function Win:StretchWinPtr;
procedure ResetDimensions;
procedure DisplayPick(Pick:integer; Hi:boolean);
procedure DisplayAllPicks;
procedure RefreshList;
procedure Remove;
procedure ValidateActivePick;
procedure ScrollUp;
procedure ScrollDown;
procedure JumpEngine(Tot, NewValue: longint);
procedure ScrollJumpV(X,Y:byte);
procedure ScrollJumpH(X,Y:byte);
procedure ScrollLeft;
procedure ScrollFarLeft;
procedure ScrollRight;
procedure ScrollFarRight;
procedure ScrollPgDn;
procedure ScrollPgUp;
procedure ScrollFirst;
procedure ScrollLast;
procedure ToggleSelect;
function TargetPick(X,Y:byte): Integer;
procedure MouseChoose(KeyX,KeyY:byte);
function LastKey: word;
procedure Go;
procedure Show;
function CharTask(var K:word; var X,Y: byte;
HiPick:longint): tListAction; VIRTUAL;
function MessageTask(HiPick:longint):string; VIRTUAL;
function GetString(Pick, Start,Finish:longint): string; VIRTUAL;
function GetStatus(Pick:longint;BitPos:byte): boolean; VIRTUAL;
procedure SetStatus(Pick:longint;BitPos:byte;On:boolean); VIRTUAL;
procedure TagAll(On:boolean); VIRTUAL;
destructor Done; VIRTUAL;
end; {ListOBJ}
pListArrayOBJ = ^ListArrayOBJ;
ListArrayOBJ = object (ListOBJ)
vArrayPtr: pointer;
vStrLength: byte;
vLinkList: ^DLLOBJ;
{methods